package com.example.dto;

import com.example.exception.BusinessException;

/**
 * 根據不同情況生成不同的Result
 *  |--請求成功
 *        |--請求成功需要返回data
 *        |--請求成功不需要返回data（data：null）
 *  |--請求失敗
 *        |--請求失敗返回枚舉異常
 *        |--請求失敗返回自定義異常
 * @author jiaqi.liu
 *
 */
public class ResultUtil {

   
	/**
	 * 請求成功並需要返回數據{status:0,data:Object,msg:"success"}
	 * @param obj
	 * @return
	 */
	public static Result success(Object obj){
		
		   Result result=new Result();
		
			result.setStatus(0);
			result.setMsg("success");
			result.setData(obj);
		
		return result;
	}
	
	/**
	 * 請求成功不需要返回數據{status:0,data:null,msg:"success"}
	 * @return
	 */
	public static Result success(){
		
		return success(null);
	}
	
	
	/**
	 * 請求失敗返回枚舉的異常
	 * @return
	 */
	public static Result error(BusinessException e){
		
		Result result =new Result();
		
		result.setStatus(e.getStatus());
		result.setMsg(e.getMessage());
		result.setData(null);
		
		return result;
	}
	
	
	/**
	 * 請求失敗返回系統異常
	 * @param status
	 * @param msg
	 * @return
	 */
	public static Result error(String msg){
		
       Result result =new Result();
		
		result.setStatus(-1);
		result.setMsg(msg);
		result.setData(null);
		return result;
		
	}
	

}
